<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of teste
 *
 * @author Lucas Pinheiro
 */
class Usuario extends Admin {

    public function __construct() {
        parent::__construct();
        $this->load->language('usuarios/usuarios_layout');
        $this->parser->set_title_pagina('Usuários', 'adm/usuarios');
        $this->parser->set_title('Usuários');
        $this->load->model('login/user_model');
        $this->load->model('pessoas/pessoas_model');
        $this->load->helper('usuarios/combos');
    }

    public function index() {
        $this->parser->site_view('usuarios/dashboard', array());
    }

    public function consultar() {
        $params = array();
        $params['CAMPOS'] = 'u.*, p.nome';
        $params['JOIN'][] = array(
            'TABELA' => 'pessoas as p',
            'TIPO' => 'INNER',
            'AND' => 'u.id_pessoas = p.id_pessoas',
        );
        $b_consultar = $this->user_model->consultar($params);

        $v_dados = array();
        $v_dados['usuarios'] = array();

        if ($b_consultar != NULL) {
            foreach ($b_consultar as $k => $v) {
                $v_dados['usuarios'][$k]['id_user'] = $v->id_user;
                $v_dados['usuarios'][$k]['username'] = $v->username;
                $v_dados['usuarios'][$k]['password'] = $v->password;
                $v_dados['usuarios'][$k]['status'] = nome_status($v->status);
                $v_dados['usuarios'][$k]['tipo'] = nome_tipo($v->tipo);
                $v_dados['usuarios'][$k]['id_pessoas'] = $v->id_pessoas;
                $v_dados['usuarios'][$k]['nome'] = $v->nome;
                $v_dados['usuarios'][$k]['acao'] = '<a href="' . base_adm('usuarios/usuario/alterar/' . $v->id_user) . '" title="Editar" class="button middle"><span class="icon icon145"></span></a>';
                $v_dados['usuarios'][$k]['acao'] .= '<a href="' . base_adm('usuarios/usuario/excluir/' . $v->id_user) . '" title="Excluir" class="button middle dialog_excluir"><span class="icon icon186"></span></a>';
            }
        }
        $this->parser->site_view('lst_usuarios', $v_dados);
    }

    public function cadastrar($id_pessoas = null) {
        $v_dados = array();
        $v_dados['id_user'] = '';
        $v_dados['username'] = '';
        $v_dados['password'] = '';
        $v_dados['status'] = combo_status();
        $v_dados['tipo'] = combo_tipo();
        $v_dados['id_pessoas'] = '';
        $v_dados['action'] = base_adm('usuarios/usuario/gravar');

        if ($id_pessoas != NULL) {

            $params = array();
            $params['AND']['id_pessoas'] = $id_pessoas;
            $b_consultar = $this->pessoas_model->get($params);

            if ($b_consultar != NULL) {
                $v_dados = array();
                $v_dados['id_user'] = '';
                $v_dados['username'] = '';
                $v_dados['password'] = '';
                $v_dados['status'] = combo_status();
                $v_dados['tipo'] = combo_tipo();
                $v_dados['id_pessoas'] = $b_consultar->id_pessoas;
                $v_dados['action'] = base_adm('usuarios/usuario/gravar');
            }
        }
        $this->parser->site_view('frm_usuarios', $v_dados);
    }

    public function alterar($id_user) {
        $params = array();
        $params['AND']['u.id_user'] = $id_user;
        $params['CAMPOS'] = 'u.*, p.nome';
        $params['JOIN'][] = array(
            'TABELA' => 'pessoas as p',
            'TIPO' => 'INNER',
            'AND' => 'u.id_pessoas = p.id_pessoas',
        );
        $b_consultar = $this->user_model->get($params);

        if ($b_consultar != NULL) {
            $v_dados = array();
            $v_dados['id_user'] = $b_consultar->id_user;
            $v_dados['username'] = $b_consultar->username;
            $v_dados['password'] = '';
            $v_dados['status'] = combo_status($b_consultar->status);
            $v_dados['tipo'] = combo_tipo($b_consultar->tipo);
            $v_dados['id_pessoas'] = $b_consultar->id_pessoas;
            $v_dados['action'] = base_adm('usuarios/usuario/gravar');
            $this->parser->site_view('frm_usuarios', $v_dados);
        }
    }

    public function gravar() {
        $this->form_validation->set_rules('username', 'Usuário', 'trim|required');
        $this->form_validation->set_rules('status', 'Situação', 'trim|required');
        $this->form_validation->set_rules('tipo', 'Tipo', 'trim|required');
        $this->form_validation->set_rules('id_pessoas', 'Pessoa', 'trim|required');
        if ($this->input->post('id_user') == '') {
            $this->form_validation->set_rules('password', 'Senha', 'trim|required');
        }

        $v_dados = array();

        if ($this->form_validation->run() === FALSE) {
            $v_dados = $this->form_validation->erros();
        } else {
            $v_dados['cod'] = 999;
            $params = array();
            $params['SET']['username'] = $this->input->post('username');
            $params['SET']['status'] = $this->input->post('status');
            $params['SET']['tipo'] = $this->input->post('tipo');
            $params['SET']['id_pessoas'] = $this->input->post('id_pessoas');
            if ($this->input->post('id_user') == '') {
                $params['SET']['password'] = md5($this->input->post('password'));
            }

            if ($this->input->post('id_user') == '') {
                $v_dados['id'] = $this->user_model->cadastrar($params);
                $v_dados['msg'] = $this->lang->line('lang_insert');
            } else {
                if ($this->input->post('password') != '') {
                    $params['SET']['password'] = md5($this->input->post('password'));
                }
                $params['AND']['id_user'] = $this->input->post('id_user');
                $v_dados['id'] = $this->input->post('id_user');
                $this->user_model->alterar($params);
                $v_dados['msg'] = $this->lang->line('lang_update');
            }
        }
        echo json_encode($v_dados);
    }

    public function excluir() {
        $params = array();
        $params['AND']['id_user'] = $this->uri->segment(5);
        $b_exclusao = $this->user_model->excluir($params);

        $v_dados = array();

        if ($b_exclusao == TRUE) {
            $v_dados['cod'] = 999;
            $v_dados['msg'] = $this->lang->line('lang_delete_success');
        } else {
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_delete_error');
        }

        echo json_encode($v_dados);
    }

}
